package com.smile.frame.workflow.flowable.demo.service;

import org.flowable.engine.repository.Model;
import org.flowable.engine.repository.ProcessDefinition;

/**
 * 流程定义
 *
 * @author LGC
 */
public interface BpmProcessDefinitionService {


    /**
     * 基于流程模型，部署创建流程定义
     *
     * @param model     流程模型
     * @param bpmnBytes BPMN XML 字节数组
     * @return 流程定义ID
     */
    String createProcessDefinition(Model model, byte[] bpmnBytes);

    /**
     * 更新流程定义状态
     *
     * @param processDefinitionId    流程定义id
     * @param state 状态 SuspensionState 1 激活  2 挂起
     */
    void updateProcessDefinitionState(String processDefinitionId, Integer state);


    /**
     * 获得 deploymentId 对应的 ProcessDefinition
     *
     * @param deploymentId 部署编号
     * @return 流程定义
     */
    ProcessDefinition getProcessDefinitionByDeploymentId(String deploymentId);

}
